﻿using System;
using System.Collections.Generic;
using System.Text;
using Pixysoft.Framework.XSchEmA.Entity;
using Pixysoft.Framework.XSchEmA.Aspect;

namespace Pixysoft.Framework.XSchEmA.Verifier
{
    class TableVerifier :  ITableVerifier
    {
        private TableVerifier() { }
        private static TableVerifier instance;
        public static TableVerifier Instance
        {
            get
            {
                lock (typeof(TableVerifier))
                {
                    if (instance == null)
                        instance = new TableVerifier();
                    return instance;
                }
            }
        }

        public bool VerifyTableName(string input, ISchemaAspect aspect, DatabaseSchema database)
        {
            if (!aspect.IsValidName(input))
                return false;

            if (database.ContainedTable(input))
                return false;

            return true;
        }
    }
}
